 1.电商分析之--广告业务之需求分析
   
   互联网平台通行的商业模式是利用免费的基础服务吸引凝聚大量用户，并利用这些用户资源开展
广告或其他增值业务实现盈利从而反哺支撑免费服务的生存和发展。广告收入不仅成为互联网平台
的重要收入之一，更决定了互联网平台的发展程度。
   
   
   电商平台本身就汇聚了海量的商品、店铺的信息，天然适合进行商品的推广。对于电商和广告主
来说，广告投放的目的无非就是吸引更多的用户，最终实现营销转化。因此非常关注不同位置广告的
曝光量、点击量、购买量、点击率、购买率。

   需求分析
   事件日志数据样例：

{
   "lagou_event": [{
       "name": "goods_detail_loading",
       "json": {
           "entry": "3",
           "goodsid": "0",
           "loading_time": "80",
           "action": "4",
           "staytime": "68",
           "showtype": "4"
       },
       "time": 1596225273755
   }, {
       "name": "loading",
       "json": {
           "loading_time": "18",
           "action": "1",
           "loading_type": "2",
           "type": "3"
       },
       "time": 1596231657803
   }, {
	   "name": "ad",
       "json": {
           "duration": "17",
           "ad_action": "0",
           "shop_id": "786",
		   "event_type": "ad",
           "ad_type": "4",
           "show_style": "1",
           "product_id": "2772",
           "place": "placeindex_left",
           "sort": "0"
      },
      "time": 1596278404415
  }, {
      "name": "favorites",
      "json": {
          "course_id": 0,
          "id": 0,
          "userid": 0
      },
      "time": 1596239532527
  }, {
      "name": "praise",
      "json": {
          "id": 2,
          "type": 3,
          "add_time": "1596258672095",
          "userid": 8,
          "target": 6
      },
      "time": 1596274343507
   }],
   "attr": {
       "area": "拉萨",
       "uid": "2F10092A86",
       "app_v": "1.1.12",
       "event_type": "common",
       "device_id": "1FB872-9A10086",
       "os_type": "4.1",
       "channel": "KS",
       "language": "chinese",
       "brand": "xiaomi-2"
   }
}
    采集的信息包括：
	(1).商品详情页加载：goods_detail_loading
    (2).商品列表：loading
	(3).消息通知：notification
    (4).商品评论：comment
    (5).收藏：favorites
    (6).点赞：praise
    (7).广告：ad
	    action。用户行为；0 曝光；1 曝光后点击；2 购买
        duration。停留时长
        shop_id。商家id
        event_type。"ad"
        ad_type。格式类型；1 JPG；2 PNG；3 GIF；4 SWF
        show_style。显示风格，0 静态图；1 动态图
        product_id。产品id
        place。广告位置；首页=1,左侧=2,右侧=3,列表页=4
        sort。排序位置
     1).点击次数统计(分时统计)
     曝光次数、不同用户id数、不同用户数
     点击次数、不同用户id数、不同用户数
     购买次数、不同用户id数、不同用户数
	 2).转化率-漏斗分析
     点击率 = 点击次数 / 曝光次数
     购买率 = 购买次数 / 点击次数
	 3).活动曝光效果评估：
     行为(曝光、点击、购买)、时间段、广告位、产品，统计对应的次数
     时间段、广告位、商品，曝光次数最多的前N个
	 
 2.事件日志采集
   
   1).启动Flume Agent(适当的修改参数，128M滚动一次)
   # 启动flume
   flume-ng agent --conf /opt/lagou/servers/flume-1.9.0/conf --conf-file
 /data/lagoudw/conf/flume-log2hdfs3.conf -name a1 -Dflume.root.logger=INFO,console
   2).生成数据（文件大小约640M，100W条事件日志)
   cd /data/lagoudw/jars
   java -cp data-generator-1.1-SNAPSHOT-jar-with-dependencies.jar
com.lagou.ecommerce.AppEvent 1000000 2020-08-02 > /data/lagoudw/logs/event/events0802.log
   3).数据采集完成后，检查HDFS结果
   hdfs dfs -ls /1 user/data/logs/event
 
 3.ODS层建表和数据加载
   
   drop table if exists ods.ods_log_event;
CREATE EXTERNAL TABLE ods.ods_log_event(`str` string)
PARTITIONED BY (`dt` string)
STORED AS TEXTFILE
LOCATION '/user/data/logs/event';
   /data/lagoudw/script/advertisement/ods_load_event_log.sh

#!/bin/bash

source /etc/profile

if [ -n "$1" ]
then
    do_date=$1
else
    do_date=`date -d "-1 day" +%F`
fi

sql="
alter table ods.ods_log_event add partition (dt='$do_date');
" 

hive -e "$sql"

